/*!
 @header
 @abstract 缓存工具封装类
 @author shadow, 15-06-25 14:06:40
 
 @version 1.0
 */
#import <Foundation/Foundation.h>

/*!
 @class
 @abstract 缓存封装
 */
@interface TMTCache : NSObject

/*!
 @property
 @abstract 用户名 将作为缓存文件夹
 */
@property (nonatomic, copy) NSString *username;

/*!
 @method
 @abstract 缓存单例
 @discussion
 
 @return 缓存单例
 */
+ (TMTCache *)sharedCache;

/*!
 @method
 @abstract 清除所有用户缓存
 @discussion
 */
- (void)clearAllCache;

/*!
 @method
 @abstract 清除该用户所有缓存
 @discussion
 */
- (void)clearCache;

@end

@interface NSObject (TMTCache)

/*!
 @method
 @abstract 将对象缓存为文件
 @discussion
 
 @param key 缓存对象的标识
 */
- (void)saveToCacheFile:(NSString *)key;

/*!
 @method
 @abstract 获取缓存对象
 @discussion
 
 @param key 缓存对象的标识
 
 @return 对象
 */
+ (id)objectFromCacheFile:(NSString *)key;

/*!
 @method
 @abstract 获取缓存对象
 @discussion
 
 @param key 缓存对象的标识
 @param className 缓存对象的名字
 
 @return 对象
 */
+ (id)objectFromCacheFile:(NSString *)key className:(NSString *)className;

/*!
 @method
 @abstract 删除缓存文件
 @discussion 删除缓存文件
 
 @param file 缓存文件名
 */
+ (void)deleteCacheFile:(NSString *)file;

/*!
 @method
 @abstract 缓存文件
 @discussion 提供缓存文件的加密方法
 
 @param file    文件名
 @param encrypt 是否加密
 */
- (void)saveToCacheFile:(NSString *)file encrypt:(BOOL)encrypt;
/*!
 @method
 @abstract 从缓存中读取文件
 @discussion 提供读取加密缓存的方法
 
 @param file    文件名
 @param encrypt 是否加密
 
 @return 缓存的对象
 */
+ (id)objectFromCacheFile:(NSString *)file encrypt:(BOOL)encrypt;

@end
